Generating customized video previews

ABSTRACT

A dynamically created video preview can be provided to a viewer by stitching relevant video clips from a target video based on a viewer profile of the viewer. In various embodiments, a computer receives a request from a viewer to preview a video. The computer can then select one or more clips from the video based on the viewer profile of the viewer. Thereafter, the computer can generate a customized video preview from the one or more selected clips for the viewer based on the viewer profile. Other embodiments may be described and/or claimed.

BACKGROUND

A trailer or preview traditionally refers to a commercial for a featurefilm that will be exhibited in the future. Like other commercials, onepurpose for offering a trailer for a feature film is to stimulateinterests among the audience so that some individuals will choose toview the actual film, e.g., in a cinema. Nowadays, video previews arenot limited to the film industry, but have ubiquitous applications whena brief showing of a longer video is desired, e.g., for a televisionshow, a music program, or even a homemade birthday party recording.

Video previews generally are brief. By way of example, the MotionPicture Association of America (MPAA) requires theatrical trailers to belimited to no longer than two minutes and thirty seconds. Therefore, amovie trailer usually only consists of a few abbreviated scenes from thefilm. To better attract viewers, it is common to select scenes from themost exciting or otherwise noteworthy parts of the film. The sameprinciple generally applies to other types of video previews.

Currently, online video platforms provide a static video preview foreach featured video, such as for a movie. A static video preview maycontain a few selected video clips from the actual video. However, thestatic video preview is usually generic for all viewers. Sometimes,different versions of static video previews may be offered in differentregions, languages, or time periods. However, static video previews donot differentiate diverse individual preferences of viewers. As aresult, a static video preview may arouse interests for some users, butfail to do so for many other users.

SUMMARY

Embodiments of the present disclosure relate to generating videopreviews based on viewers' profiles. In this regard, a user can requesta preview for a video on an online video server, e.g., by clicking athumbnail image representing the video preview. Instead of delivering ageneric preview to all users, the online video server can dynamicallycreate video previews by stitching a few video clips selected based onthe viewer profile of the user. As such, the customized preview becomeshighly relevant and attractive for this user. Therefore, the user canmake a better informed decision whether to watch the full video based onthe customized preview.

In some implementations, to build such a customized video preview, videoclips from highly ranked video categories indicated in the viewerprofile may be selected. Within a video category highly ranked by theuser, video clips in the video category are also ranked, e.g., based onfeedback from all users. Thus, a top ranked video clip in the videocategory highly ranked by the user is likely to be selected to buildsuch a customized video preview. Finally, all video clips selected forthe user are assembled in a customized sequence based on the viewerprofile.

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the detaileddescription. This summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments will be readily understood by the following detaileddescription in conjunction with the accompanying drawings. To facilitatethis description, like reference numerals designate like structuralelements. Embodiments are illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings.

FIG. 1 is a schematic diagram illustrating an example implementation ofa system for generating video previews based on viewer profiles,incorporating aspects of the present disclosure, in accordance withvarious embodiments.

FIG. 2 is a flow diagram of an example process for generating videopreviews based on viewer profiles, which may be practiced by an exampleapparatus, incorporating aspects of the present disclosure, inaccordance with various embodiments.

FIG. 3 is a flow diagram of another example process for generating videopreviews based on viewer profiles, which may be practiced by an exampleapparatus, incorporating aspects of the present disclosure, inaccordance with various embodiments.

FIG. 4 illustrates an example computing device suitable for practicingthe disclosed embodiments, in accordance with various embodiments.

DETAILED DESCRIPTION

The subject matter of the present invention is described withspecificity herein to meet statutory requirements. However, thedescription itself is not intended to limit the scope of this patent.Rather, the inventors have contemplated that the claimed subject mattermight also be embodied in other ways, to include different components,modules, blocks, steps, etc., similar to the ones described in thisdocument, in conjunction with other present or future technologies.

A brief video preview provides users a general idea of the content ofthe actual longer video. Thus, after only spending a few minutes orless, a user can make better informed decision in terms of purchasing orwatching the full-length video, like a movie. However, online videoplatforms generally only provide a static video preview for eachfeatured video. Even though different versions of static video previewsmay be offered in different regions, languages, or time periods, staticvideo previews are not tailored to individual preferences of viewers,even though different viewers likely have different preferences in termsof what portions of the video are more interesting to them. As a result,a static video preview is unlikely to be viewed favorably by allviewers.

In this disclosure, methods and systems for generating video previewsbased on a viewer profile are disclosed. In this regard, instead ofdelivering a generic preview to all users, the online video server candynamically create customized video previews by assembling a few videoclips selected based on the viewer profile of the user. At a high level,video clips from highly ranked video categories indicated in the viewerprofile may be selected to build such a customized video preview. Withina video category, a top ranked video clip in the video category can beselected to build such a customized video preview. Finally, video clipsselected for the user can be assembled in a customized sequence based onthe viewer profile. As such, a customized video preview becomes highlyrelevant and more interesting to the user. Therefore, the user can makea better informed decision to purchase or watch the full-length videobased on the customized video preview.

By way of example, assume a user is browsing through a movie catalog onan online video portal. On the portal's user interface, assume there isa thumbnail of the film poster for each movie. When a user tries to getmore information about a movie indicated by a thumbnail. e.g., byhovering the mouse on the thumbnail, a customized video preview will bepresented to the user based on the user's profile. For instance, if theviewer profile suggests that the user is more inclined towards watchingromantic movies, the customized video preview of the present movie cancontain a romantic scene from the movie to better engage the user.

In implementation, in order to create customized video previews, a listof video categories are defined, e.g., according to the film industrynorm or by a system administrator to video server 110 as discussedherein. In some embodiments, video categories include genres, such asaction, adventure, comedy, crime, mystery, romance, science fiction,etc. Further, subgenres can also be defined under a genre. As anexample, the subgenres of martial arts, military fiction, spy fiction,western fiction, etc., may be further specified under the genre ofaction. Even further, cross-genres can also be defined by combining twoor more genres or subgenres. As an example, romantic comedy (aka RomCom)is a cross-genre which combines the romance genre with the comedy genre.

Further, the scenes or clips of the video can be identified andcategorized in advance, e.g., into one or more previously discussedvideo categories, such as genres, subgenres, or cross-genres. In someembodiments, such scene classification processes can be automated, e.g.,based on neural networks, or heuristic algorithms. By way of example,for identifying a romantic scene, captions can be searched for few wordsfrom a reference dictionary related to romance. For identifying anaction scene, video can be analyzed for high motion activity and fastedits, and for the same reason, audio can be analyzed for audio effectsto recognize an action scene.

Further, viewer profiles can be established for users. In someembodiments, a viewer profile includes demographic or classificationinformation of the user, such as gender, age, location, language,profession, etc. In some embodiments, the user's rank for previouslydiscussed genres, subgenres, or cross-genres are established, eithermanually by the user or automatically generated by a server, e.g., basedon the historical viewing history of the user.

Using the categories of clips within a video, various portions of thevideo can be selected in accordance with preferences within the viewerprofile. Such selected portions can be aggregated to generate acustomized video preview for the user. By way of example, the viewerprofile of a user indicates that the user is a male French speaker whoranked comedy much higher than action with respective quantified weightsof W_(c) and W_(a). For a selected movie, the customized preview willlikely have an emphasis on comedy scenes rather than action scenes whenthe selected movie has both. Further, the time allocated to comedyscenes and action scenes, as well as the assembling sequence of theseselected scenes, in the video preview can be determined based at leastin part on the quantified weights of W_(c) and W_(a) in this case.Consequently, the customized video preview can increase the potentialmatch between the user's preferences and the full-length videosummarized in a rather short preview. Therefore, a customized videopreview based on the viewer profile is going to not only better engagethe user but also better facilitate the user to determine whether toview the full-length video.

Referring now to FIG. 1, a schematic diagram illustrates an examplesystem 100 for generating video previews based on viewer profiles inaccordance with various embodiments. Users can request and accesscustomized video previews from video server 110 via various userdevices, such as computer 120, tablet 130, or smartphone 140. Videoserver 110 is a server computing device configured to generate videopreviews based on viewer profiles. As illustrated in FIG. 1, videoserver 110 includes communication module 112, user module 114, previewmodule 116, and video module 118, operatively coupled with each other.The Video server, computer 120, tablet 130, and/or smartphone 140 may beany computing device, such as computing device 400 in FIG. 4. Generally,a computing device refers to any computing or other electronic equipmentthat executes instructions and includes any type of processor-basedequipment that operates an operating system or otherwise executesinstructions. A device will typically include at least a processor thatexecutes program instructions and may include external or internalcomponents such as a mouse, a CD-ROM, DVD, a keyboard, a display, orother input or output equipment. Examples of devices are personalcomputers, digital assistants, personal digital assistants, cellularphones, mobile phones, smartphones, pagers, digital tables, laptopcomputers, tablet computers, Internet appliances, other processor-baseddevices, and television viewing devices. A device is to be used as aspecial-purpose computing device to provide specific functionalityoffered by applications and modules, such as to generate video previewsbased on viewer profiles or display a video preview thereinafter.

The phrase “video preview” refers to any showing of a full-length video.Commonly, video previews can be used as a commercial for the underlyingfull-length video to boost viewers' interest in purchasing or viewingthe full-length video, e.g., a film or a television show. Often, a videopreview is composed from selected video clips in the full-length video.However, in some embodiments, a video preview may include video clipsexternal from the full-length video. By way of example, a video previewfor a film can include an excerpt of an interview with the director ormain actors in the film.

The phrase “viewer profile” refers to any individual information relatedto a viewer, which can be used to facilitate a device, e.g., a server,to generate customized video previews for the viewer. In someembodiments, a viewer profile includes demographic or classificationinformation of the user, such as gender, age, location, language,profession, etc. In some embodiments, a viewer profile includes theuser's preferences or rank information for different genres, subgenres,or cross-genres of the videos.

In operation, and at a high level, video server 110 receives a requestfor a video preview from a user device via communication module 112. Inresponse, user module 114 retrieves a viewer profile associated with theuser who is requesting the customized video preview. In someembodiments, user module 114 needs to establish a new viewer profile forthe user if there is no existing viewer profile associated with theuser. Further, if new information related to the user is received, theviewer profile can be automatically updated. Based on the viewerprofile, preview module 116 can generate a customized video preview forthe user. As described in more detail herein, a customized video previewcan be generated based on video categories of portions of the video thatalign with categorical preferences indicated in the viewer profile. Suchvideo categories and/or video portions can be referenced from the videomodule 118 to facilitate generation of the customized video preview.Subsequently, video server 110 can deliver the dynamically generatedvideo preview for the user, e.g., streaming the video preview to one ofthe user devices associated with the user, such as computer 120, tablet130, or smartphone 140.

As mentioned, the video server 110 of FIG. 1 includes communicationmodule 112, user module 114, preview module 116, and video module 118,although various implementations are contemplated and suitable forcarrying aspects of the present invention. The communication module 112generally enables video server 110 to communicate with various userdevices, e.g., utilizing one or more wireless or wired networks. Thesewireless or wired networks may include public and/or private networks,such as, but not limited to, LANs, WANs, or the Internet. In someembodiments, these wireless networks may include one or more WPANs,WLANs, WMANs, or WWANs. In some embodiments, these wireless networks mayinclude cellular networks, for example, Wideband Code Division MultipleAccess (WCDMA), Global System for Mobile Communications (GSM), Long TermEvolution (LTE), and the like.

The communication module 112 might receive a video request from a userdevice, such as computer 120, tablet 130, or smartphone 140. The videorequest from the user device can be triggered in any number of manners.For instance, in some cases, a viewer might explicitly request the videopreview, e.g., by clicking on a preview button on a user interface ormouse hover. In other cases, the viewer might implicitly request thevideo preview, e.g., by loading a video portal's home page, whichautomatically triggers playing the video preview associated with thevideo portal, e.g., the video of the day.

User module 114 is to build and update viewer profiles, further toprovide viewer profiles, e.g., to preview module 116 in response to itsqueries to retrieve viewer profiles. In some embodiments, user module114 is to build a viewer profile including demographic or classificationinformation of the user, such as gender, age, location, language,profession, etc. Users can directly input such information to videoserver 110 via user module 114, e.g., via the user signup process oruser account updating process. User module 114 can automatically, insome embodiments, collect user information for building or updating aviewer profile, e.g., determining the user's preferred language viabrowsers used by the user, or determining the user's location based onthe IP address associated with a user device, e.g., computer 120, tablet130, or smartphone 140. By way of example, a viewer profile may includeage group, sex, location, education, profession, marital status,political affiliation, income status, hobbies, past viewing history,past viewing behaviors, etc.

In some embodiments, user module 114 builds a viewer profile includingthe user's preference or rank for previously discussed video categories,e.g., genres, subgenres, or cross-genres. User module 114 can directlytake users' manual input, e.g., via a user interface. A user canmanually assign or select a metric of likeness, e.g., in a range from 0to 1 or another suitable range, to each video category.

Alternatively or additionally, user module 114 can automatically adjustthe user's preference, e.g., based on the viewing history of the user.By way of example, as a user keeps on watching movies, every watchedmovie can be counted as one or more votes for corresponding videocategories associated with the movie on the viewer profile. Over time,the viewing pattern of the user is reflected on the viewer profile, anduser module 114 can continue adjusting the viewer profile as the user'sviewing pattern evolves. For example, user module 114 can track videosviewed by a viewer associated with various categories. For each videocategory, an adjusted weight of a specific video category can bedetermined by dividing the number of votes (e.g., viewings) received forthe specific video category by the total number of votes (e.g.,viewings) received from the viewer.

In some embodiments, without any viewing history, a new user is assignedwith one of the many default viewer profiles, such as based on thedemographic information of the user, e.g., age group, location, etc. Adefault viewer profile may be generalized based on users with similarcharacteristics, such as the same age group. Such a default can bechanged, for example, automatically or based on user input.

The following are some example partial viewer profiles with variousvideo categories and weights indicated. The viewer associated with Table1 likes romance and comedy most, and the viewer associated with Table 3likes romance and drama most. Action and sci-fi are the top twofavorable video categories of the viewer associated with Table 2. Amongthese examples, the weights of all video categories are normalized. Inother embodiments, the weights of all video categories may need not tobe normalized.

TABLE 1 Partial Viewer Profile Video Categories Weight Romance 0.4Action 0.05 Comedy 0.3 Drama 0.05 Musical 0 Sci-fi 0.15 Thriller 0.05Horror 0

TABLE 2 Partial Viewer Profile Video Categories Weight Romance 0.05Action 0.4 Comedy 0.1 Drama 0.05 Musical 0 Sci-fi 0.35 Thriller 0.05Horror 0

TABLE 3 Partial Viewer Profile Video Categories Weight Romance 0.4Action 0.05 Comedy 0.15 Drama 0.25 Musical 0 Sci-fi 0.15 Thriller 0Horror 0

Viewer profiles can be stored and accessed for use in generating videopreviews. As described, the viewer profiles may be updated as the viewerpreferences change.

The video module 118 can store or otherwise enable access to variousvideos. In this regard, the video module 118 might store, or remotelyaccess video clips, for use in generating a video preview. By way ofexample, in accordance with a request to view a video preview for videoA, video portions associated with video A might be referenced togenerate the video preview.

Further, video module 118 can associate a video with one or more videocategories. A video category can be any type of category that can beused to classify a video or portion thereof. For example, as previouslydiscussed, the list of video categories may include main genres (e.g.,action, comedy, crime, mystery, romance, science fiction, etc.),subgenres (e.g., martial arts, military fiction, spy fiction, westernfiction, etc., for action), or cross-genres (e.g., romantic comedy,etc.). Categories may also include non-genre-based categories, such asanimation, documentary, etc. In some embodiments, video categories mayalso be classified based on time-related parameters, such as when thevideo was made (e.g., 80s, 90s, etc.), or such as when the videoinitially became accessible to users at a video portal (e.g., last week,last month, last year, etc.). Video categories may also be classifiedbased on the main actors or actresses in the video. In some embodiments,video categories may also be classified based on pricing information.e.g., purchase price or rental price. In some embodiments, videocategories may also be classified based on viewers' membershipinformation, e.g., a list of premium videos may be complied for premiummembers in a video portal. In other embodiments, video categories may beorganized in any classification methodology suitable for video deliveryservices. Even further, in some embodiments, a customized video previewmay be stored, either persistently or temporarily, e.g., by video module118, so that the customized video preview can be retrieved quickly forthe same user or other similar users in the future.

In various embodiments, for the purposes of the present disclosure, thephrase “video clip” refers to any clips of video whose length is lessthan the length of the full video. In some embodiments, video clips maybe chosen from key scenes in the video. In some embodiments, video clipsmay be randomly chosen, e.g., based on a time constraint. In general,multiple video clips are to be assembled in a particular sequence toform a video preview of the full video.

Video module 118 can additionally or alternatively identify and classifyvarious video clips in a video into various video categories. The videoas a whole may be classified into one or more video categories asdiscussed herein; similarly, each video clip can also be classified intoone or more video categories, such as genres, subgenres, orcross-genres. In some embodiments, such classification processes for thevideo as a whole or the video clip as a part can be automated, e.g.,based on neural network learning algorithms or heuristic predictionalgorithms as discussed previously. By way of example, variousalgorithms known in the art in artificial neural networks (ANNs) can beused for classifying video categories, such as supervised learning forpattern recognition, or even unsupervised learning algorithms. Forinstance, various heuristic cues can be utilized for classification,such as keywords from a reference dictionary related to romance can besearched again the captions in a movie to identify a romantic scene.

In some embodiments, such classification processes can be at leastpartially based on manual effort, such as using crowdsourcing models.Crowdsourcing generally refers to a process of collaborating, usuallyonline, of a crowd of people on a project. Video module 118 can providea user interface to solicit classification information of a video clipfrom various viewers. For example, video module 118 can select a randomvideo clip from a video and offers it as a free preview to viewers.Viewers are requested to classify the random video clip into one or moresuitable video categories afterwards. Viewers may also be requested torank the random video clip as compared to other video clips in the samevideo category using a predefined scale, such as on a scale of 1-10. Inthis way, video module 118 not only obtains the classificationinformation, but also receives ranking information of video clips withina video category. Even further, viewers may be asked to provideindividual preferences to this random video clip, e.g., to user module114. Subsequently, user module 114 can utilize such information inbuilding or updating viewer profiles.

Preview module 116 generates customized video previews based on viewerprofiles, e.g., provided by user module 114. By way of example, a viewerprofile of a user indicates that the user is a male French speaker whoranked comedy much higher than action with respective quantified weightsof 0.8 and 0.2. In one embodiment, for a selected movie, preview module116 will build a customized video preview based on this viewer profilethat emphasizes comedy scenes rather than action scenes when theselected movie has both, e.g., preview module 116 will allocate moretime to comedy scenes than action scenes, e.g., proportional to theirrespective weights. For instance, assume that the video preview islimited to two minutes. Accordingly, based on the normalized weights of0.8 and 0.2 for comedy and action respectively for this viewer, oneminute and thirty-six seconds will be allocated to comedy scenes, andtwenty-four seconds will be allocated to action scenes. Within a videocategory, the allocated time will be further distributed to those topranked video clips in the video category. Further, preview module 116may determine a sequence to assemble selected scenes in the videopreview based at least in part on their quantified weights. In thiscase, the comedy scenes will be placed before the action scenes.

Consequently, the customized video preview can increase the potentialmatch between the user's preferences and the full-length videosummarized in a rather short preview. Granted, in some instances, aviewer may be drawn to a substantially action movie if he happened tojust like the comedy scene in the preview. However, in most instances,it is conceivable that the viewer is in the best position to evaluatescenes in a genre he likes, at least for himself. Therefore, acustomized video preview based on the viewer profile is going to notonly better engage the user but also better facilitate the user todetermine whether to view the full video.

In this regard, instead of delivering a generic preview to all users,video server 110 can dynamically create customized video previews byassembling a few video clips selected based on the viewer profile of theuser. In implementation, video clips from those highly ranked videocategories indicated in the viewer profile may be selected to build sucha customized video preview. Within a video category, a top ranked videoclip in the video category is likely to be selected to build such acustomized video preview. Finally, all video clips selected for the userare assembled in a customized sequence based on the viewer profile. Assuch, a customized video preview becomes highly relevant and moreinteresting to the user. Therefore, the user can make a better informeddecision to purchase or watch the full video based on the customizedvideo preview.

By way of example, in reference to FIG. 1 herein, preview module 116 canreference the user profile, retrieved via user module 114, to identifyuser preferences for various video categories. Based on the userpreferences, indicated on the user profile, preview module 116 canchoose a few top ranked video categories to build a customized videopreview. Subsequently, preview module 116 can allocate respective timeto each chosen video categories, e.g., based on the total length allowedfor the video preview and the respective ranks or weights associatedwith chosen video categories on the viewer profile. Within a chosenvideo category, preview module 116 can access video clips, e.g., viavideo module, and select one or more video clips from the chosen videocategory, e.g., based on the respective ranks or weights of the one ormore video clips within that video category. Further, preview module 116will assemble selected video clips into a customized video preview. Thecustomized video preview may then be delivered to the requesting userdevice, e.g., tablet 130.

In various embodiments, video server 110 may be implemented differentlythan depicted in FIG. 1. As an example, user module 114 can be combinedwith preview module 116 to form a comprehensive module to generate videopreviews based on viewer profiles. In some embodiments, componentsdepicted in FIG. 1 can have a direct or indirect connection not shown inFIG. 1. In some embodiments, some of the components depicted in FIG. 1may be divided into multiple modules, such as what is illustrated inFIG. 3. Further, one or more components of video server 110 may belocated across any number of different devices or networks. As anexample, video module 118 may be implemented as an integrated subsystemof a data server (not shown) rather than located in system 100.

Referring now to FIG. 2, it is a flow diagram of an example process 200for generating video previews based on viewer profiles, which may bepracticed by an example apparatus in accordance with variousembodiments. Process 200 may be performed by processing logic thatcomprises hardware (e.g., circuitry, dedicated logic, programmablelogic, microcode, etc.), software (e.g., instructions run on aprocessing device to perform hardware simulation), or a combinationthereof. The processing logic is to be configured to generate videopreviews. As such, process 200 may be performed by a computing device,e.g., video server 110, to implement one or more embodiments of thepresent disclosure. In various embodiments, process 200 can have feweror additional operations, or perform some of the operations in differentorders.

In various embodiments, the process begins at block 210, where a videoserver retrieves, e.g., from user module 114 of FIG. 1, a viewer profileof a viewer in response to a request from the viewer to preview a video.In some embodiments, the viewer would explicitly request the videopreview, e.g., by clicking on a preview button on a user interface. Insome embodiments, the viewer may have implicitly requested the videopreview, e.g., by loading a video portal's home page, whichautomatically triggers playing the video preview associated with thevideo portal, e.g., the video of the day.

In some embodiments, to identify the viewer, the identity of the vieweris associated with the login information of a user of the video server.As an example, the video server may require users to provide logininformation before providing services. In some embodiments, the videoserver can determine the identity of the viewer by the deviceidentification associated with the video preview request. Deviceidentification includes various hardware identifications known in theart. In one embodiment, such device identification is issued by thevideo server to devices authenticated by the video server. In someembodiments, the video server authenticates a legitimate session basedon a combination of hardware information and user information, e.g., adevice identification and login information. In various embodiments,such authentication or identification will assist the video server toretrieve the viewer profile associated with the viewer.

In some embodiments, different viewers are associated with the same userlogin or otherwise authenticated session with the video server. As anexample, different family members in a household may use a set-top box(STB) or set-top unit (STU) to access the video server. They may sharethe same login information, but access the video server at differenttimes. In this case, different viewer files can be established, e.g.,based on different habitual viewing history at different times of theday, the week, etc. Accordingly, the video server can retrieve thecorrect viewer profile based on the respective time associated withthese associated viewer profiles.

Next, at block 220, the video server, e.g., via preview module 116 ofFIG. 1, selects one or more video clips from the video based on theviewer profile. In one embodiment, the video server selects anappropriate version of the video, e.g., based on the language or regionassociated with the viewer profile. The video server then analyzes theviewer profile to select one or more video categories favored by theviewer according to the viewer profile. Further, the video serverselects one or more video clips from those selected video categories.

In some embodiments, the video server selects a video clip associatedwith a video category from the video when a weight of the video categoryassociated with the viewer profile meets a selection condition. In someimplementations, the selection condition may be related to the ranks ofrespective video category on the viewer profile. As an example, the topone or two ranked video categories are chosen as candidates. In someimplementations, the selection condition may be related to apredetermined weight threshold. As an example, a video category havingweight exceeding the predetermined threshold will be chosen. Then, videoclips associated with those chosen video categories become candidatevideo clips to build a customized video preview for the user. Within achosen video category, video clips are selected based on theirrespective ranks. Additionally, such selection is also restricted basedon the time limitations, e.g., allocated to the particular videocategory.

Next, at block 230, video server, e.g., via preview module 116 of FIG.1, generates a customized video preview from the one or more video clipsfor the viewer based on the viewer profile. In various embodiments, thevideo server determines a particular sequence to assemble the one ormore video clips based on the viewer profile, e.g., based on the rank orweight of respective video categories associated with the one or morevideo clips. The video server may additionally allocate time for eachselected video clip based on the viewer profile.

In some embodiments, the sequence to assemble video clips for the videopreview is derived from the respective weight or rank of thecorresponding video categories of the selected video clips in the viewerprofile. By way of example, for the viewer associated with the viewerprofile in Table 2 above, if one action clip and one comedy clip areselected, then the action clip will be placed before the comedy clipbecause the associated weight of the former is greater than theassociated weight of the later.

Respective time allocated to different video clips can also be derivedfrom the respective weight or rank of the corresponding video categoriesof the selected video clips in the viewer profile. In one embodiment,using the viewer associated with the viewer profile in Table 2 aboveagain, if only one action clip and only one comedy clip are selected tocompose a one-minute video preview, then the action clip will beallocated 48 seconds, and the comedy clip will get the remaining 12seconds, based on their respective weights in the viewer profile.

Referring now to FIG. 3, it is a flow diagram of an example process 300for generating video previews based on viewer profiles, which may bepracticed by an example apparatus in accordance with variousembodiments. As shown, process 300 may be performed by video server 110of FIG. 1 to implement one or more embodiments of the presentdisclosure. Similar to process 200, in various embodiments, process 300can have fewer or additional operations, or perform some of theoperations in different orders.

In various embodiments, process 300 begins at block 310, where a videopreview request is received by the video server. Process 300 continuesat block 320, where the video server determines whether a correspondingviewer profile exits for the preview request. If a viewer profile cannotbe found for the viewer, then process 300 continues to block 332,wherein the video server starts to gather information for the viewer. Asan example, the video server may request the viewer to update useraccount information or answer a questionnaire to provide relevantinformation. Further, the video server will gather the viewing historyof the viewer at block 334. In some instances, even a new user for thevideo server may have a viewing history, e.g., from another video serverthat is associated with the new user, or from related services providedby the video server to the new user. Then, at block 336, the videoserver builds a viewer profile for the viewer associated with thepreview request. As discussed herein, a default viewer profile can beused as the basis for the viewer, e.g., based on the demographicinformation of the viewer. Further, the default viewer profile can beupdated, e.g., according to the viewing history gathered at block 334.

Returning to block 320, if the video server determines that a viewerprofile has been found at block 320 or established after block 336, andthen the video server handles the preview request at block 342 to selectappropriate video categories for the preview request. In someembodiments, the video server selects one or more top ranked videocategories from the viewer profile or selects video categories thatexceed a threshold value. Then, at block 344, the video server allocatestime to each selected video category based on, e.g., the respectiveweights of the selected video category. In one embodiment, for example,assuming that the normalized weight for a particular video category isx, then the time allocated to this particular video category can bedetermined based on the product of the total time of the video previewand the normalized weight (x). In other words, such time allocations areproportional to the respective weights of various video categories inthis embodiment. A video preview is often restricted by relatively shorttime duration. By allocating more time to a video category favored bythe viewer, it enhances the chance to build a video clip liked by theviewer into the short video preview.

The video server then selects relevant video clips at block 346, e.g.,based on the selected video categories. In one embodiment, the videoserver selects one or more top ranked video clips from the full-lengthvideo based on these selected one or more top ranked video categories.As a result, a top ranked video clip in the video category highly rankedby the viewer is likely to be selected to build such a customized videopreview for the viewer.

At block 348, the selected one or more video clips need to be marshaledin a proper order or sequence. In one embodiment, the video serverinterlaces the video clips in a round-robin scheduling method based ontheir respective video categories. As an example, the video serverplaces the highest ranked video clip in the highest ranked videocategory first, then the highest ranked video clip in the second highestranked video category second, and so on, until all the selected videoclips are placed in the queue. In one embodiment, the video serversimply marshals the selected video clips based on the ranks of theirrespective video categories first, then within a video category, basedon the ranks of the selected video clips. In other embodiments, theselected video clips may be marshaled based on other suitable orders orsequences.

At block 352, the video server can edit the video preview, e.g., addingtransitions between two video clips, modifying the beginning or endingof the video preview, or cutting an individual video clip. Finally, atblock 360, the video server delivers the video preview, e.g., to theviewer in response to the preview request received at block 310.

Having briefly described an overview of embodiments of the presentinvention, an exemplary operating environment in which embodiments ofthe present invention may be implemented is described below in order toprovide a general context for various aspects of the present invention.Referring initially to FIG. 4 in particular, an exemplary operatingenvironment for implementing embodiments of the present invention isshown and designated generally as computing device 400. Computing device400 is but one example of a suitable computing environment and is notintended to suggest any limitation as to the scope of use orfunctionality of the invention. Neither should the computing device 400be interpreted as having any dependency or requirement relating to anyone or combination of components illustrated.

The invention may be described in the general context of computer codeor machine-useable instructions, including computer-executableinstructions such as program modules, being executed by a computer orother machine, such as a personal data assistant or other handhelddevice. Generally, program modules including routines, programs,objects, components, data structures, etc., refer to code that performparticular tasks or implement particular abstract data types. Theinvention may be practiced in a variety of system configurations,including handheld devices, consumer electronics, general-purposecomputers, more specialty computing devices, etc. The invention may alsobe practiced in distributed computing environments where tasks areperformed by remote-processing devices that are linked through acommunications network.

With reference to FIG. 4, computing device 400 includes a bus 410 thatdirectly or indirectly couples the following devices: memory 420, one ormore processors 430, one or more presentation components 440,input/output (I/O) ports 450, input/output (I/O) components 460, and anillustrative power supply 470. Bus 410 represents what may be one ormore busses (such as an address bus, data bus, or combination thereof).Although the various blocks of FIG. 4 are shown with lines for the sakeof clarity, in reality, delineating various components is not so clear,and metaphorically, the lines would more accurately be grey and fuzzy.For example, one may consider a presentation component such as a displaydevice to be an I/O component. Also, processors have memory. Theinventor recognizes that such is the nature of the art, and reiteratesthat the diagram of FIG. 4 is merely illustrative of an exemplarycomputing device that can be used in connection with one or moreembodiments of the present invention. Distinction is not made betweensuch categories as “workstation,” “server,” “laptop,” “handheld device,”etc., as all are contemplated within the scope of FIG. 4 and referenceto “computing device.”

Computing device 400 typically includes a variety of computer-readablemedia. Computer-readable media can be any available media that can beaccessed by computing device 400 and includes both volatile andnonvolatile media, and removable and non-removable media. By way ofexample, and not limitation, computer-readable media may comprisecomputer storage media and communication media. Computer storage mediaincludes volatile and nonvolatile, removable and non-removable mediaimplemented in any method or technology for storage of information suchas computer-readable instructions, data structures, program modules, orother data. Computer storage media includes, but is not limited to, RAM,ROM, EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical disk storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can be accessed by computing device 400. Computer storagemedia does not comprise signals per se. Communication media typicallyembodies computer-readable instructions, data structures, programmodules, or other data in a modulated data signal such as a carrier waveor other transport mechanism and includes any information deliverymedia. The term “modulated data signal” means a signal that has one ormore of its characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared, and other wireless media. Combinations of any of the aboveshould also be included within the scope of computer-readable media.

Memory 420 includes computer-storage media in the form of volatileand/or nonvolatile memory. The memory may be removable, non-removable,or a combination thereof. Exemplary hardware devices include solid-statememory, hard drives, optical-disc drives, etc. Computing device 400includes one or more processors that read data from various entitiessuch as memory 420 or I/O components 460. Presentation component(s) 440present data indications to a user or other device. Exemplarypresentation components include a display device, speaker, printingcomponent, vibrating component, etc.

In various embodiments, memory 420 includes, in particular, temporal andpersistent copies of video preview logic 422. Video preview logic 422includes instructions that, when executed by one or more processors 430,result in computing device 400 generating video previews based on viewerprofiles, such as, but not limited to, process 200 or process 300. Invarious embodiments, video preview logic 422 includes instructions that,when executed by processor 430, result in computing device 400performing various functions associated with, but not limited to, usermodule 114 or preview module 116 in connection with FIG. 1.

In some embodiments, one or more processors 430 may be packaged togetherwith video preview logic 422. In some embodiments, one or moreprocessors 430 may be packaged together with video preview logic 422 toform a System in Package (SiP). In some embodiments, one or moreprocessors 430 can be integrated on the same die with video previewlogic 422. In some embodiments, processor 430 can be integrated on thesame die with video preview logic 422 to form a System on Chip (SoC).

I/O ports 450 allow computing device 400 to be logically coupled toother devices including I/O components 460, some of which may be builtin. Illustrative components include a microphone, joystick, game pad,satellite dish, scanner, printer, wireless device, etc. The I/Ocomponents 460 can also provide a natural user interface (NUI) thatprocesses air gestures, voice, or other physiological inputs generatedby a user. In some embodiments, inputs may be transmitted to anappropriate network element for further processing. An NUI may implementany combination of speech recognition, stylus recognition, facialrecognition, biometric recognition, gesture recognition both on screenand adjacent to the screen, air gestures, head and eye tracking, andtouch recognition (as described in more detail below) associated with adisplay of the computing device 400. The computing device 400 may beequipped with depth cameras, such as stereoscopic camera systems,infrared camera systems, RGB camera systems, touchscreen technology, andcombinations of these, for gesture detection and recognition.Additionally, the computing device 400 may be equipped withaccelerometers or gyroscopes that enable detection of motion. The outputof the accelerometers or gyroscopes may be provided to the display ofthe computing device 400 to render immersive augmented reality orvirtual reality.

Although certain embodiments have been illustrated and described hereinfor purposes of description, a wide variety of alternate and/orequivalent embodiments or implementations calculated to achieve the samepurposes may be substituted for the embodiments shown and describedwithout departing from the scope of the present disclosure. Thisapplication is intended to cover any adaptations or variations of theembodiments discussed herein. Therefore, it is manifestly intended thatembodiments described herein be limited only by the claims.

An abstract is provided that will allow the reader to ascertain thenature and gist of the technical disclosure. The abstract is submittedwith the understanding that it will not be used to limit the scope ormeaning of the claims. The following claims are hereby incorporated intothe detailed description, with each claim standing on its own as aseparate embodiment.

What is claimed is:
 1. A computer-implemented method for generatingvideo previews for a video, comprising: classifying a plurality of videoclips in the video into a plurality of video categories; rankingrespective video clips in respective video categories of the pluralityof video categories; retrieving a viewer profile of a viewer in responseto a request from the viewer to preview the video; identifying a videocategory of the plurality of video categories from the video based atleast in part on a preference weight for the video category in theviewer profile exceeding a predetermined threshold; allocating a portionof a customized video preview to the video category based at least inpart on the preference weight for the video category in the viewerprofile; selecting a video clip associated with the video category basedat least in part on a rank of the video clip; and generating thecustomized video preview based at least in part on the video clip. 2.The method of claim 1, further comprising: allocating time to at leasttwo video categories for the customized video preview based onrespective weights of the at least two video categories in the viewerprofile.
 3. The method of claim 1, wherein the selecting comprisesselecting the video clip when the video category is a top ranked videocategory associated with the viewer profile.
 4. The method of claim 3,wherein the selecting comprises selecting a top ranked video clip fromthe top ranked video category based on the viewer profile.
 5. The methodof claim 1, wherein the generating comprises sequencing two video clipsfrom the video category into the customized video preview based onrespective ranks of the two video clips.
 6. The method of claim 1,wherein the selecting comprises selecting a first video clip from afirst video category and a second video clip from a second videocategory; and wherein the generating comprises determining an order ofthe first and second video clips in the customized video preview basedon the viewer profile.
 7. The method of claim 1, wherein thecategorizing comprises categorizing the plurality of video clips into aset of predefined categories based on a majority opinion among aplurality of users.
 8. The method of claim 1, wherein the classifyingcomprises heuristically classifying the video clip of the plurality ofvideo clips based on captions associated with the video clip or based onaudio or video effects associated with the video clip.
 9. A system forgenerating video previews, comprising: a communication module to receivea request from a viewer to preview a video; a user module, coupled tothe communication module, to update one or more weights of a pluralityof video categories on a viewer profile based on respective viewingfrequencies of the plurality of video categories by the viewer, andretrieve the viewer profile of the viewer in response to the request;and a preview module, coupled to the user module, to: classify aplurality of video clips in the video into the plurality of videocategories, rank respective video clips within respective videocategories of the plurality of video categories, allocating a portion ofa customized video preview to a top weighted video category based onrespective weights of the plurality of video categories on the viewerprofile, and generate the customized video preview including a topranked video clip from the top weighted video category for the viewer.10. The system of claim 9, wherein the user module is further to selectanother video clip to include in the customized video preview when aweight of a video category associated with the another video clipexceeds a predetermined threshold.
 11. The system of claim 9, whereinthe preview module is further to choose two top weighted videocategories from the viewer profile, and proportionally allocate time tothe two top weighted video categories for the customized video previewbased on respective weights of the two top weighted video categories onthe viewer profile.
 12. The system of claim 9, wherein the previewmodule is further to marshal two video clips from a video category intothe customized video preview based on respective ranks of the two videoclips in the video category.
 13. The system of claim 9, wherein thepreview module is further to marshal a first video clip from a firstvideo category and a second video clip from a second video categorybased on respective weights of the first and second video categories onthe viewer profile.
 14. One or more non-transient computer storage mediastoring computer-readable instructions that, when executed by one ormore processors of a computer system, cause the computer system toperform operations comprising: classifying a plurality of video clips inthe video into a plurality of video categories; ranking respective videoclips in respective video categories of the plurality of videocategories; retrieving a viewer profile of a viewer in response to arequest from the viewer to preview a video; identifying a video categoryof the plurality of video categories from the video when a weight of thevideo category in the viewer profile meets a selection condition;allocating a portion of a video preview to the video category based atleast in part on the weight of the video category in the viewer profile;selecting a video clip associated with the video category based at leastin part on a rank of the video clip; and generating the video previewbased at least in part on the video clip.
 15. The storage media of claim14, wherein the instructions further cause the computer system toperform operations comprising: choosing two top-weighted videocategories from the viewer profile; and allocating time proportionallyto the two top weighted video categories for the video preview based onrespective weights of the two top weighted video categories on theviewer profile.
 16. The storage media of claim 14, wherein theinstructions further cause the computer system to perform operationscomprising: selecting one or more video clips from two top-weightedvideo categories subject to a constraint of an allocated time to one ofthe two top-weighted categories.
 17. The storage media of claim 14,wherein the instructions further cause the computer system to performoperations comprising: building the viewer profile of the viewer basedon a plurality of videos previously selected by the viewer.
 18. Thestorage media of claim 14, wherein the instructions further cause thecomputer system to perform operations comprising: assigning weights to aplurality of video categories on the viewer profile based on respectiveviewing frequencies in the plurality of video categories by the viewer.